package com.cheng.example.book.advise151.chap7;


import java.util.Arrays;
import java.util.List;

interface Staff {
    // 工资
    public int getSalary();
}

interface Passenger {
    // 是否是站立状态
    public boolean isStanding();
}

//定义我这个类型的人
class Me implements Staff, Passenger {

    @Override
    public boolean isStanding() {
        return true;
    }

    @Override
    public int getSalary() {
        return 2000;
    }

}


public class Client99 {

    //工资低于2500的并且站立的乘客车票打8折
    public static <T extends Staff & Passenger> void discount(T t) {
        if (t.getSalary() < 2500 && t.isStanding()) {
            System.out.println(" 恭喜您，您的车票打八折!");
        }
    }

    public static void main(String[] args) {
        discount(new Me());
    }
}
//---------------------------------


class UserHandler<T extends User> {
    // 判断用户是否有权限执行操作
    public boolean permit(T user, List<Job> jobs) {
        List<Class<?>> iList = Arrays.asList(user.getClass().getInterfaces());
        // 判断 是否是管理员
        if (iList.indexOf(Admin.class) > -1) {
            Admin admin = (Admin) user;
            // 判断管理员是否有此权限
        } else {
            // 判断普通用户是否有此权限
        }
        return false;
    }
}

class User {
}

class Job {
}

class Admin extends User {
}